<?php

/*
* 获取 $_GET 传送的数据
*/
function get($parameter_name=null, $default_value=null, $convert_type='string', $escape=true)
{
    return request($parameter_name, $default_value, 'get', $convert_type, $escape);
}


/*
* 获取 $_POST 传送的数据
*/
function post($parameter_name=null, $default_value=null, $convert_type='string', $escape=true)
{
    return request($parameter_name, $default_value, 'post', $convert_type, $escape);
}


/*
* 获取 $_COOKIE 传送的数据
*/
function cookie($parameter_name, $default_value=null, $convert_type='string', $escape=true)
{
    return request($parameter_name, $default_value, 'cookie', $convert_type, $escape);
}


/*
* 获取 $_GET/$_POST/$_COOKIE 传送的数据
* $parameter_name $_COOKIE索引参数名称
* @$default_value  没有取到值时，默认返回值
* @$method 按哪种方法传值  get/post/cookie
* @$convert_type 把取到的值进行类型转换   
* 	$convert_type可选参数:
* 	int: 整型
* 	float：浮点型
* 	string: 字符串
* 	array(int):整型数组
* 	array(float):浮点型数组
* 	array(string):字符串数组
* @$escape 是否需要在某些字符前加上了反斜线。这些字符是单引号（'）、双引号（"）、反斜线（\）与 NUL（NULL 字符）防止数据库查询或写入时出错或SQL注入。
*/
function request($parameter_name=null, $default_value=null, $method='request', $convert_type='string', $escape=true)
{
	switch ($method)
	{
		case 'get':$input = $_GET;break;
		case 'post':$input = $_POST;break;
		case 'cookie':$input = $_COOKIE;break;
		default:$input = $_REQUEST;break;
	}
    
    if($parameter_name===null)
    {
        if (!get_magic_quotes_gpc()) $input = array_map('addslashes', $input);
        return $input;
    }
    
    $value = $default_value;
    
    if (isset($input[$parameter_name]) && $input[$parameter_name] !== null)
	{
		$value = $input[$parameter_name];
    	switch ($convert_type)
    	{
    		case 'int':	$value = intval($value); break;
    		case 'float': $value = floatval($value); break;
    		case 'string':
    	        if(is_string($value))
    		    {
    				$value = trim($value);
        		    if($escape)
    				{
    				    if (!get_magic_quotes_gpc()) $value = addslashes($value);
    				}
    				else
    				{
    				    if (get_magic_quotes_gpc()) $value = stripslashes($value);
    				}
    		    }
    		    else
    		    {
    		        $value = $default_value;
    		    }
    		    break;
    		case 'array(int)':
    		    $array = array();
    		    if(is_array($value))
    		    {
    		        foreach($value as $key=>$val){ $array[$key] = intval($val); }
    		    }
    		    $value = $array;
    		    break;
    		case 'array(float)':
    		    $array = array();
    	        if(is_array($value))
    		    {
    		        foreach($value as $key=>$val){ $array[$key] = floatval($val); }
    		    }
    		    $value = $array;
    		    break;
    		case 'array(string)':
    		    $array = array();
    	        if(is_array($value))
    		    {
    		        foreach($value as $key=>$val)
    		        {
    		            if(is_string($val))
    		            {
    		                $val = trim($val);
        		            if($escape)
            				{
            				    if (!get_magic_quotes_gpc()) $val = addslashes($val);
            				}
            				else
            				{
            				    if (get_magic_quotes_gpc()) $val = stripslashes($val);
            				}
    		            }
    		            else
    		            {
    		                $val = $default_value;
    		            }
    		            $array[$key] = $val;
    		        }
    		    }
    		    $value = $array;
    		    break;
    	}
	}
	return $value;
}


/*
* 处理网址, 启用 SEF 时生成伪静态页
*/
function url($url = null)
{
	$config = bone::get_config('system');
	if($config->sef)
	{
		if(strpos($url, '?')!==false)
		{
			$url = str_replace(array('=','&'), '-', $url);
			$url =  preg_replace( "/.+?controller-([^-]+)-task-([^-]+)(.+)/", "\\1-\\2\\3", $url ).'.html';
		}
	}

	return $url;
}




/*
* 多国语言， 暂不开发
*/
function lang($text = null)
{
	return $text;
}

?>